<!DOCTYPE html>
<html lang="en-us">
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    
<meta charset="UTF-8">
<title>HTTP exporters | Elasticsearch Guide [7.7] | Elastic</title>
<link rel="home" href="index.html" title="Elasticsearch Guide [7.7]">
<link rel="up" href="collecting-monitoring-data.html" title="Collecting monitoring data using legacy collectors">
<link rel="prev" href="local-exporter.html" title="Local exporters">
<link rel="next" href="pause-export.html" title="Pausing data collection">
<meta name="DC.type" content="Learn/Docs/Elasticsearch/Reference/7.7">
<meta name="DC.subject" content="Elasticsearch">
<meta name="DC.identifier" content="7.7">
<meta name="robots" content="noindex,nofollow">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://cdn.optimizely.com/js/18132920325.js"></script>
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <meta name="apple-mobile-web-app-title" content="Elastic">
    <meta name="application-name" content="Elastic">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#ffffff">
    <meta name="naver-site-verification" content="936882c1853b701b3cef3721758d80535413dbfd">
    <meta name="yandex-verification" content="d8a47e95d0972434">
    <meta name="localized" content="true">
    <meta name="st:robots" content="follow,index">
    <meta property="og:image" content="https://www.elastic.co/static/images/elastic-logo-200.png">
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
    <link rel="apple-touch-icon-precomposed" sizes="64x64" href="/favicon_64x64_16bit.png">
    <link rel="apple-touch-icon-precomposed" sizes="32x32" href="/favicon_32x32.png">
    <link rel="apple-touch-icon-precomposed" sizes="16x16" href="/favicon_16x16.png">
    <!-- Give IE8 a fighting chance -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" type="text/css" href="/guide/static/styles.css">
  </head>

  <!--© 2015-2021 Elasticsearch B.V. Copying, publishing and/or distributing without written permission is strictly prohibited.-->

  <body>
    <!-- Google Tag Manager -->
    <script>dataLayer = [];</script><noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-58RLH5" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-58RLH5');</script>
    <!-- End Google Tag Manager -->

    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-12395217-16"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-12395217-16');
    </script>

    <!--BEGIN QUALTRICS WEBSITE FEEDBACK SNIPPET-->
    <script type="text/javascript">
      (function(){var g=function(e,h,f,g){
      this.get=function(a){for(var a=a+"=",c=document.cookie.split(";"),b=0,e=c.length;b<e;b++){for(var d=c[b];" "==d.charAt(0);)d=d.substring(1,d.length);if(0==d.indexOf(a))return d.substring(a.length,d.length)}return null};
      this.set=function(a,c){var b="",b=new Date;b.setTime(b.getTime()+6048E5);b="; expires="+b.toGMTString();document.cookie=a+"="+c+b+"; path=/; "};
      this.check=function(){var a=this.get(f);if(a)a=a.split(":");else if(100!=e)"v"==h&&(e=Math.random()>=e/100?0:100),a=[h,e,0],this.set(f,a.join(":"));else return!0;var c=a[1];if(100==c)return!0;switch(a[0]){case "v":return!1;case "r":return c=a[2]%Math.floor(100/c),a[2]++,this.set(f,a.join(":")),!c}return!0};
      this.go=function(){if(this.check()){var a=document.createElement("script");a.type="text/javascript";a.src=g;document.body&&document.body.appendChild(a)}};
      this.start=function(){var a=this;window.addEventListener?window.addEventListener("load",function(){a.go()},!1):window.attachEvent&&window.attachEvent("onload",function(){a.go()})}};
      try{(new g(100,"r","QSI_S_ZN_emkP0oSe9Qrn7kF","https://znemkp0ose9qrn7kf-elastic.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_emkP0oSe9Qrn7kF")).start()}catch(i){}})();
    </script><div id="ZN_emkP0oSe9Qrn7kF"><!--DO NOT REMOVE-CONTENTS PLACED HERE--></div>
    <!--END WEBSITE FEEDBACK SNIPPET-->

    <div id="elastic-nav" style="display:none;"></div>
    <script src="https://www.elastic.co/elastic-nav.js"></script>

    <!-- Subnav -->
    <div>
      <div>
        <div class="tertiary-nav d-none d-md-block">
          <div class="container">
            <div class="p-t-b-15 d-flex justify-content-between nav-container">
              <div class="breadcrum-wrapper"><span><a href="/guide/" style="font-size: 14px; font-weight: 600; color: #000;">Docs</a></span></div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="main-container">
      <section id="content">
        <div class="content-wrapper">

          <section id="guide" lang="en">
            <div class="container">
              <div class="row">
                <div class="col-xs-12 col-sm-8 col-md-8 guide-section">
                  <!-- start body -->
                  <div class="page_header">
<strong>IMPORTANT</strong>: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
<a href="../current/index.html">current release documentation</a>.
</div>
<div id="content">
<div class="breadcrumbs">
<span class="breadcrumb-link"><a href="index.html">Elasticsearch Guide [7.7]</a></span>
»
<span class="breadcrumb-link"><a href="monitor-elasticsearch-cluster.html">Monitor a cluster</a></span>
»
<span class="breadcrumb-link"><a href="collecting-monitoring-data.html">Collecting monitoring data using legacy collectors</a></span>
»
<span class="breadcrumb-node">HTTP exporters</span>
</div>
<div class="navheader">
<span class="prev">
<a href="local-exporter.html">« Local exporters</a>
</span>
<span class="next">
<a href="pause-export.html">Pausing data collection »</a>
</span>
</div>
<div class="section xpack">
<div class="titlepage"><div><div>
<h2 class="title">
<a id="http-exporter"></a>HTTP exporters<a class="edit_me edit_me_private" rel="nofollow" title="Editing on GitHub is available to Elastic" href="https://github.com/elastic/elasticsearch/edit/7.7/docs/reference/monitoring/http-export.asciidoc">edit</a><a class="xpack_tag" href="/subscriptions"></a>
</h2>
</div></div></div>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>Metricbeat is the recommended method for collecting and shipping monitoring
data to a monitoring cluster.</p>
<p>If you have previously configured legacy collection methods, you should migrate
to using Metricbeat collection methods. Use either Metricbeat collection or
legacy collection methods; do not use both.</p>
<p>Learn more about <a class="xref" href="configuring-metricbeat.html" title="Collecting Elasticsearch monitoring data with Metricbeat"><em>Collecting monitoring data with Metricbeat</em></a>.</p>
</div>
</div>
<p>The <code class="literal">http</code> exporter is the preferred exporter in the Elasticsearch monitoring features
because it enables the use of a separate monitoring cluster. As a secondary
benefit, it avoids using a production cluster node as a coordinating node for
indexing monitoring data because all requests are HTTP requests to the
monitoring cluster.</p>
<p>The <code class="literal">http</code> exporter uses the low-level Elasticsearch REST Client, which enables it to
send its data to any Elasticsearch cluster it can access through the network. Its requests
make use of the <a class="xref" href="common-options.html#common-options-response-filtering" title="Response Filtering"><code class="literal">filter_path</code></a> parameter to
reduce bandwidth whenever possible, which helps to ensure that communications
between the production and monitoring clusters are as lightweight as possible.</p>
<p>The <code class="literal">http</code> exporter supports a number of settings that control how it
communicates over HTTP to remote clusters. In most cases, it is not
necessary to explicitly configure these settings. For detailed
descriptions, see <a class="xref" href="monitoring-settings.html" title="Monitoring settings in Elasticsearch">Monitoring settings</a>.</p>
<div class="pre_wrapper lang-yaml">
<pre class="programlisting prettyprint lang-yaml">xpack.monitoring.exporters:
  my_local: <a id="CO443-1"></a><i class="conum" data-value="1"></i>
    type: local
  my_remote: <a id="CO443-2"></a><i class="conum" data-value="2"></i>
    type: http
    host: [ "10.1.2.3:9200", ... ] <a id="CO443-3"></a><i class="conum" data-value="3"></i>
    auth: <a id="CO443-4"></a><i class="conum" data-value="4"></i>
      username: my_username
      password: changeme
    connection:
      timeout: 6s
      read_timeout: 60s
    ssl: ... <a id="CO443-5"></a><i class="conum" data-value="5"></i>
    proxy:
      base_path: /some/base/path <a id="CO443-6"></a><i class="conum" data-value="6"></i>
    headers: <a id="CO443-7"></a><i class="conum" data-value="7"></i>
      My-Proxy-Header: abc123
      My-Other-Thing: [ def456, ... ]
    index.name.time_format: YYYY-MM <a id="CO443-8"></a><i class="conum" data-value="8"></i></pre>
</div>
<div class="calloutlist">
<table border="0" summary="Callout list">
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO443-1"><i class="conum" data-value="1"></i></a></p>
</td>
<td align="left" valign="top">
<p>A <code class="literal">local</code> exporter defined explicitly whose arbitrary name is <code class="literal">my_local</code>.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO443-2"><i class="conum" data-value="2"></i></a></p>
</td>
<td align="left" valign="top">
<p>An <code class="literal">http</code> exporter defined whose arbitrary name is <code class="literal">my_remote</code>. This name
uniquely defines the exporter but is otherwise unused.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO443-3"><i class="conum" data-value="3"></i></a></p>
</td>
<td align="left" valign="top">
<p><code class="literal">host</code> is a required setting for <code class="literal">http</code> exporters. It must specify the HTTP
port rather than the transport port. The default port value is <code class="literal">9200</code>.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO443-4"><i class="conum" data-value="4"></i></a></p>
</td>
<td align="left" valign="top">
<p>User authentication for those using Elastic Stack security features or some other
form of user authentication protecting the cluster.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO443-5"><i class="conum" data-value="5"></i></a></p>
</td>
<td align="left" valign="top">
<p>See <a class="xref" href="monitoring-settings.html#http-exporter-settings" title="HTTP Exporter Settings">HTTP Exporter Settings</a> for all TLS/SSL settings. If not supplied,
the default node-level TLS/SSL settings are used.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO443-6"><i class="conum" data-value="6"></i></a></p>
</td>
<td align="left" valign="top">
<p>Optional base path to prefix any outgoing request with in order to
work with proxies.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO443-7"><i class="conum" data-value="7"></i></a></p>
</td>
<td align="left" valign="top">
<p>Arbitrary key/value pairs to define as headers to send with every request.
The array-based key/value format sends one header per value.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" width="5%">
<p><a href="#CO443-8"><i class="conum" data-value="8"></i></a></p>
</td>
<td align="left" valign="top">
<p>A mechanism for changing the date suffix used by default.</p>
</td>
</tr>
</table>
</div>
<div class="note admon">
<div class="icon"></div>
<div class="admon_content">
<p>The <code class="literal">http</code> exporter accepts an array of <code class="literal">hosts</code> and it will round robin
through the list. It is a good idea to take advantage of that feature when the
monitoring cluster contains more than one node.</p>
</div>
</div>
<p>Unlike the <code class="literal">local</code> exporter, <em>every</em> node that uses the <code class="literal">http</code> exporter attempts
to check and create the resources that it needs. The <code class="literal">http</code> exporter avoids
re-checking the resources unless something triggers it to perform the checks
again. These triggers include:</p>
<div class="ulist itemizedlist">
<ul class="itemizedlist">
<li class="listitem">
The production cluster’s node restarts.
</li>
<li class="listitem">
A connection failure to the monitoring cluster.
</li>
<li class="listitem">
The license on the production cluster changes.
</li>
<li class="listitem">
The <code class="literal">http</code> exporter is dynamically updated (and it is therefore replaced).
</li>
</ul>
</div>
<p>The easiest way to trigger a check is to disable, then re-enable the exporter.</p>
<div class="warning admon">
<div class="icon"></div>
<div class="admon_content">
<p>This resource management behavior can create a hole for users that
delete monitoring resources. Since the <code class="literal">http</code> exporter does not re-check its
resources unless one of the triggers occurs, this can result in malformed index
mappings.</p>
</div>
</div>
<p>Unlike the <code class="literal">local</code> exporter, the <code class="literal">http</code> exporter is inherently routing requests
outside of the cluster. This situation means that the exporter must provide a
username and password when the monitoring cluster requires one (or other
appropriate security configurations, such as TLS/SSL settings).</p>
<div class="important admon">
<div class="icon"></div>
<div class="admon_content">
<p>When discussing security relative to the <code class="literal">http</code> exporter, it is
critical to remember that all users are managed on the monitoring cluster. This
is particularly important to remember when you move from development
environments to production environments, where you often have dedicated
monitoring clusters.</p>
</div>
</div>
<p>For more information about the configuration options for the <code class="literal">http</code> exporter,
see <a class="xref" href="monitoring-settings.html#http-exporter-settings" title="HTTP Exporter Settings">HTTP Exporter Settings</a>.</p>
</div>
<div class="navfooter">
<span class="prev">
<a href="local-exporter.html">« Local exporters</a>
</span>
<span class="next">
<a href="pause-export.html">Pausing data collection »</a>
</span>
</div>
</div>

                  <!-- end body -->
                </div>
                <div class="col-xs-12 col-sm-4 col-md-4" id="right_col">
                  <div id="rtpcontainer" style="display: block;">
                    <div class="mktg-promo">
                      <h3>Most Popular</h3>
                      <ul class="icons">
                        <li class="icon-elasticsearch-white"><a href="https://www.elastic.co/webinars/getting-started-elasticsearch?baymax=default&amp;elektra=docs&amp;storm=top-video">Get Started with Elasticsearch: Video</a></li>
                        <li class="icon-kibana-white"><a href="https://www.elastic.co/webinars/getting-started-kibana?baymax=default&amp;elektra=docs&amp;storm=top-video">Intro to Kibana: Video</a></li>
                        <li class="icon-logstash-white"><a href="https://www.elastic.co/webinars/introduction-elk-stack?baymax=default&amp;elektra=docs&amp;storm=top-video">ELK for Logs &amp; Metrics: Video</a></li>
                      </ul>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </section>

        </div>


<div id="elastic-footer"></div>
<script src="https://www.elastic.co/elastic-footer.js"></script>
<!-- Footer Section end-->

      </section>
    </div>

<script src="/guide/static/jquery.js"></script>
<script type="text/javascript" src="/guide/static/docs.js"></script>
<script type="text/javascript">
  window.initial_state = {}</script>
  </body>
</html>
